let alarmDevices = [{
		"id": "1",
		"device": "M101-MDC UPS",
		"desc": "交流输入故障 故障",
		"start": 146,
		"end": 140,
		"level": 3, // 1正常 2严重 3紧急
		"stay": "6s",
		"status": 1, // 0 未恢复  1已恢复
		"timeline": [{
				"type": "start",
				"time": 146,
				"title": "告警发生",
				"desc": "交流输入故障 故障"
			},
			{
				"type": "send_msg",
				"time": 141,
				"title": "发送短信，接收人：李红军",
				"desc": "发送内容：M101-MDC UPS 交流输入故障 故障"
			},
			{
				"type": "end",
				"time": 140,
				"title": "告警恢复",
				"desc": "告警恢复"
			}
		]
	},
	{
		"id": "2",
		"device": "M102-MDC 配电柜",
		"desc": "通讯状态 中断",
		"start": 330,
		"end": 256,
		"level": 3,
		"stay": "1m14s",
		"status": 1,
		"timeline": [{
				"type": "start",
				"time": 330,
				"title": "告警发生",
				"desc": "通讯状态 中断"
			},
			{
				"type": "send_msg",
				"time": 327,
				"title": "发送短信，接收人：李红军",
				"desc": "发送内容：M102-MDC 配电柜 通讯状态 中断"
			},
			{
				"type": "end",
				"time": 256,
				"title": "告警恢复",
				"desc": "告警恢复"
			}
		]
	},
	{
		"id": "3",
		"device": "M101-MDC 2#空调",
		"desc": "回风温度过高，当前值：25.3 设定值：25.0",
		"start": 720,
		"end": 690,
		"level": 1,
		"stay": "30s",
		"status": 1,
		"timeline": [{
				"type": "start",
				"time": 720,
				"title": "告警发生",
				"desc": "回风温度过高，当前值：25.3 设定值：25.0"
			},
			{
				"type": "send_msg",
				"time": 718,
				"title": "发送短信，接收人：李红军",
				"desc": "发送内容：M101-MDC 2#空调 回风温度过高，当前值：25.3 设定值：25.0"
			},
			{
				"type": "end",
				"time": 690,
				"title": "告警恢复",
				"desc": "告警恢复"
			}
		]
	},
	{
		"id": "4",
		"device": "M105-MDC 2#温湿度",
		"desc": "温度过高，当前值：27.1 设定值：26.0",
		"start": 330,
		"end": 0,
		"level": 2,
		"stay": "",
		"status": 0,
		"timeline": [{
				"type": "start",
				"time": 330,
				"title": "告警发生",
				"desc": "温度过高，当前值：27.1 设定值：26.0"
			},
			{
				"type": "send_msg",
				"time": 325,
				"title": "发送短信，接收人：李红军",
				"desc": "发送内容：温度过高，当前值：27.1 设定值：26.0"
			}
		]
	},
	{
		"id": "5",
		"device": "M104-MDC 1#温湿度",
		"desc": "温度过高，当前值：26.5 设定值：26.0",
		"start": 126352,
		"end": 125852,
		"level": 2,
		"stay": "5m",
		"status": 1,
		"timeline": [{
				"type": "start",
				"time": 126352,
				"title": "告警发生",
				"desc": "温度过高，当前值：26.5 设定值：26.0"
			},
			{
				"type": "send_msg",
				"time": 126350,
				"title": "发送短信，接收人：李红军",
				"desc": "发送内容：温度过高，当前值：26.5 设定值：26.0"
			},
			{
				"type": "end",
				"time": 125852,
				"title": "告警恢复",
				"desc": ""
			}
		]
	},
	{
		"id": "6",
		"device": "M102-MDC 1#温湿度",
		"desc": "温度过高，当前值：26.9 设定值：26.0",
		"start": 1126016,
		"end": 1125852,
		"level": 2,
		"stay": "2m44s",
		"status": 1,
		"timeline": [{
				"type": "start",
				"time": 1126016,
				"title": "告警发生",
				"desc": "M102-MDC 1#温湿度 温度过高，当前值：26.9 设定值：26.0"
			},
			{
				"type": "send_msg",
				"time": 1126010,
				"title": "发送短信，接收人：李红军",
				"desc": "发送内容：M102-MDC 1#温湿度 温度过高，当前值：26.9 设定值：26.0"
			},
			{
				"type": "end",
				"time": 1125852,
				"title": "告警恢复",
				"desc": ""
			}
		]
	}
]

function makeAlarm(devices) {
	console.log(111)
	let now = parseInt((new Date().getTime()) / 1000);
	let alarm = devices.map(v => {
		v.start = now - v.start
		if (v.status === 0) {
			v.end = 0
		} else {
			v.end = now - v.end
		}
		v.timeline = v.timeline.map(v2 => {
			v2.time = now - v2.time
			return v2
		})
		return v
	})
	console.log(alarm)
	console.log('end')
	return alarm

	// let alarms=[]
	// for(let alarm of devices){
	// 	let item = {...alarm}
	// 	let startTime =  now-item.start
	// 	item.start = startTime
	// 	if(item.status ===0){
	// 		item.end=0
	// 	}else{
	// 		let endTime =  now-item.end
	// 		item.end = endTime
	// 	}
	// 	item.timeline = item.timeline.map(v => {
	// 		v.time = now - v.time
	// 		return v
	// 	})
	// 	// for(let k in item.timeline) {
	// 	// 	item.timeline[k].time = now - item.timeline[k].time
	// 	// }
	// 	// for(let line of item.timeline){
	// 	// 	let happen_time = now -line.time
	// 	// 	line.time = happen_time

	// 	// }

	// 	alarms.push(item)
	// }
	// return alarms	
}

// let alarms = makeAlarm(alarmDevices)
// console.log(alarms)
// export alarms

export function genAlarms() {
	// let now = parseInt((new Date().getTime()) / 1000);
	let now = Math.round(+new Date() / 1000)
	let list = deepClone(alarmDevices)
	list = list.map(v => {
		v.start = now - v.start
		if (v.status === 0) {
			v.end = 0
		} else {
			v.end = now - v.end
		}
		v.timeline = v.timeline.map(v2 => {
			v2.time = now - v2.time
			return v2
		})
		return v
	})

	return list
}

// 浅拷贝 - 只有一级的时候可以用
function easyClone(data) {
	// return Object.assign({}, data) // 只对对象
	return {...data} // 对象
	return [...data]
}

// 深拷贝 - 利用递归最稳妥
function deepClone(data) {
	// return JSON.parse(JSON.stringify(data)) // 如果层级中有function等特殊类型就不好用
	if(typeof data === 'object' && data) {
		// 判断是数组还是对象
		// let obj = data instanceof Array ? [] : {} // 
		// let obj = data.constructor === Array ? [] : {}
		// let ojb = typeof a === 'object' && !isNaN(a.length) ? [] : {}
		// let obj = typeof data.length === 'number' ? [] : {}
		// let obj = Object.property.toString().call(data) === '[object Array]' ? [] : {}
		let obj = Array.isArray(data) ? [] : {}
		for(let i in data) {
			obj[i] = deepClone(data[i])
		}
		return obj
	}
	return data
}